package com.xd.core.bill.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * <p>
 * 提前还款详情
 * </p>
 *
 * @author ZCH
 * @since 2025/03/03/16:46
 */
@Data
@Accessors(chain = true)
public class EarlyRepaymentDetailVo {
    @ApiModelProperty(value = "债权id")
    private Integer debtId;

    @ApiModelProperty(value = "企业ID")
    private Integer companyId;

    @ApiModelProperty(value = "进件ID")
    private Integer incomingId;

    @ApiModelProperty(value = "提前还款类型 1:正常提前还款 2:逾期提前还款")
    private String isNormal;

    @ApiModelProperty(value = "提前还款类型 1:正常提前还款 2:逾期提前还款")
    private String isNormalRemark;

    @ApiModelProperty(value = "提前还款日")
    private String earlyDate;

    @ApiModelProperty(value = "是否代收(0--代收,1--不代收)")
    @ExcelIgnore
    private String isWithhold;

    @ApiModelProperty(value = "是否代收(0--代收,1--不代收)")
    @ExcelProperty("是否平台代扣")
    private String isWithholdRemark;

    @ApiModelProperty(value = "实际还款日")
    private String factEarlyDate;

    @ApiModelProperty(value = "是否申请线下还款 0:否 1:是")
    @ExcelIgnore
    private String isOfflineRepay;

    @ApiModelProperty(value = "是否申请线下还款 0:否 1:是")
    @ExcelProperty("是否申请线下还款")
    private String isOfflineRepayRemark;

    @ApiModelProperty(value = "上次扣款失败原因")
    private String failCause;

    @ApiModelProperty(value = "还款凭证")
    private String repayVoucher;

    @ApiModelProperty(value = "结清还款金额")
    private BigDecimal remainingShouldRepayAmount;

    @ApiModelProperty(value = "剩余应还本金")
    private BigDecimal remainingShouldRepayPrincipal;

    @ApiModelProperty(value = "剩余应还利息")
    private BigDecimal remainingShouldRepayInterest;

    @ApiModelProperty(value = "逾期利息")
    private BigDecimal overdueInterest;

    @ApiModelProperty(value = "罚息")
    private BigDecimal defaultInterestTodo;

    @ApiModelProperty(value = "违约金")
    private BigDecimal earlyRepaymentPenalty;

    @ApiModelProperty(value = "实际还款金额")
    private BigDecimal repayAmount;

    @ApiModelProperty(value = "付款通道(1-通道一，2-通道二)")
    private String payPass;

    @ApiModelProperty(value = "订单状态（大）  1:还款中 2:已结清 3:已逾期 4:退保中 5:已退保")
    private Integer debtStatus;
}
